/**
 * 
*/

package GUI_SPR;


import encryption.Encrypter;
import java.awt.BorderLayout;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import persistence.UsoPersisteceMySQLConnection;

/**
 * @version 1.0
 * @author edwin
 */
public class NuevoUsuario extends javax.swing.JFrame {

    //-----------------------------------------------------------------
    //  Constructor:.
    //-----------------------------------------------------------------
    
    /**
     * Método que permite la creación de un nuevo objeto de NuevoUsuario.
     */
    public NuevoUsuario() {
        initComponents();
        //Se coloca el fondo de la ventana.
        Fondo fondo = new Fondo (450,350,"fondo3.jpg");
        this.add(fondo,BorderLayout.CENTER);
        this.pack();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        bienvenidaL = new javax.swing.JLabel();
        contraseñaL = new javax.swing.JLabel();
        crearB = new javax.swing.JButton();
        nombreUsuarioTF = new javax.swing.JTextField();
        nombreUsuarioL = new javax.swing.JLabel();
        confirmarContraseñaL = new javax.swing.JLabel();
        cancelarB = new javax.swing.JButton();
        contraseñaTF = new javax.swing.JPasswordField();
        confirmarContraseñaTF = new javax.swing.JPasswordField();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Crear Cuenta Nueva");

        bienvenidaL.setFont(new java.awt.Font("Bookman Old Style", 0, 18));
        bienvenidaL.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/icon/nuevaC.png"))); // NOI18N

        contraseñaL.setFont(new java.awt.Font("Bookman Old Style", 0, 11));
        contraseñaL.setForeground(new java.awt.Color(255, 255, 255));
        contraseñaL.setText("Contraseña");

        crearB.setFont(new java.awt.Font("Bookman Old Style", 0, 11));
        crearB.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/icon/go.png"))); // NOI18N
        crearB.setText("Crear");
        crearB.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                crearBActionPerformed(evt);
            }
        });

        nombreUsuarioTF.setFont(new java.awt.Font("Bookman Old Style", 0, 11));

        nombreUsuarioL.setFont(new java.awt.Font("Bookman Old Style", 0, 11));
        nombreUsuarioL.setForeground(new java.awt.Color(255, 255, 255));
        nombreUsuarioL.setText("Nombre de Usuario");

        confirmarContraseñaL.setFont(new java.awt.Font("Bookman Old Style", 0, 11));
        confirmarContraseñaL.setForeground(new java.awt.Color(255, 255, 255));
        confirmarContraseñaL.setText("Confirmar Contraseña");

        cancelarB.setFont(new java.awt.Font("Bookman Old Style", 0, 11));
        cancelarB.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/icon/cancel.png"))); // NOI18N
        cancelarB.setText("Cancelar");
        cancelarB.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cancelarBActionPerformed(evt);
            }
        });

        contraseñaTF.setFont(new java.awt.Font("Bookman Old Style", 0, 11));

        confirmarContraseñaTF.setFont(new java.awt.Font("Bookman Old Style", 0, 11));

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(43, 43, 43)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(bienvenidaL)
                            .addGroup(layout.createSequentialGroup()
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(confirmarContraseñaL)
                                    .addComponent(contraseñaL)
                                    .addComponent(nombreUsuarioL))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(confirmarContraseñaTF)
                                    .addComponent(nombreUsuarioTF)
                                    .addComponent(contraseñaTF, javax.swing.GroupLayout.DEFAULT_SIZE, 147, Short.MAX_VALUE)))))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(105, 105, 105)
                        .addComponent(crearB)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(cancelarB)))
                .addContainerGap(43, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(19, Short.MAX_VALUE)
                .addComponent(bienvenidaL)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(nombreUsuarioL, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(nombreUsuarioTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(contraseñaL)
                    .addComponent(contraseñaTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(8, 8, 8)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(confirmarContraseñaL)
                    .addComponent(confirmarContraseñaTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(27, 27, 27)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(cancelarB)
                    .addComponent(crearB))
                .addGap(40, 40, 40))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    
    //------------------------------------------------------------------------
    //Métodos 
    //------------------------------------------------------------------------
    
    /**
     * Método encargado de crear una nueva Cartera para el usuario.
     * @param evt El evento que se da al presionar el botón.
     */
    private void crearBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_crearBActionPerformed
        Encrypter encriptador = new Encrypter();
        ArrayList<String> datos = new ArrayList<String>();
        boolean inicioSecion = false;
        if((!nombreUsuarioTF.equals("")) && (!contraseñaTF.getText().equals("")) && (contraseñaTF.getText().equals(confirmarContraseñaTF.getText()))){
            datos.add(encriptador.encriptar(nombreUsuarioTF.getText()));
            datos.add(encriptador.encriptar(contraseñaTF.getText()));
            String passX = JOptionPane.showInputDialog("Ingrese la contraseña maestra, para poder crear el nuevo usuario");
            if(UsoPersisteceMySQLConnection.verificarUsuario("Xico", passX)){
                    inicioSecion = true;
                    UsoPersisteceMySQLConnection.agregarUsuario(datos);
                    JOptionPane.showMessageDialog(null, "El usuario se ha creado con éxito");
                }
            else {
                JOptionPane.showMessageDialog(null, "La contraseña maestra no es correcta,\nSolicite al encargado"
                        + " la creación de su usuario");
            }
        }
        else{
           JOptionPane.showMessageDialog(null, "Llene los campos y revise que las contraseñas coincidan");
        }
        
    }//GEN-LAST:event_crearBActionPerformed

    /**
     * Método encargado de regresar al menu principal.
     * @param evt El evento que se da al presionar el botón.
     */
    private void cancelarBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelarBActionPerformed
        
        MenuPrincipal menu = new MenuPrincipal ();
        menu.show();
        dispose();
    }//GEN-LAST:event_cancelarBActionPerformed

    
    /**
     * Método encargado de manejar la clase.
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new NuevoUsuario().setVisible(true);
            }
        });
    }
    
    //------------------------------------------------------------------------
    //Atributos 
    //------------------------------------------------------------------------
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel bienvenidaL;
    private javax.swing.JButton cancelarB;
    private javax.swing.JLabel confirmarContraseñaL;
    private javax.swing.JPasswordField confirmarContraseñaTF;
    private javax.swing.JLabel contraseñaL;
    private javax.swing.JPasswordField contraseñaTF;
    private javax.swing.JButton crearB;
    private javax.swing.JLabel nombreUsuarioL;
    private javax.swing.JTextField nombreUsuarioTF;
    // End of variables declaration//GEN-END:variables
}
